home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-05-09 | 64.1 KB | 2,378 lines |
-
-
-
-
-
-
-
-
-
-
- HyperShell Hypertext control system
- Version 2.5
-
- Authoring Guide
-
- Copyright (c) 1989 Text Technology
-
-
-
-
- Text Technology
- 66 Kennedy Avenue
- Macclesfield
- Cheshire
- England
- SK10 3DE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 1 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 1
-
- Introduction
-
-
-
-
- 1.1 Introduction
-
-
- This manual is a guide to the production of hypertext files for
- the HyperShell system.
-
- It describes the mechanism for producing and maintaining simple
- hyperfiles, and provides an introduction to more advanced
- programming using HyperShell. It is recommended that the reader
- becomes familiar with the operation of HyperShell, by reading
- the Users guide and by using HyperShell, before reading this
- document. An understanding of the fundamentals of MSDOS is also
- useful.
-
- The full specification of HyperShell files, and full details of
- the operation of the editor and support utilities are described
- in the Reference Guide.
-
- The hypertext concept and the HyperShell product are described
- in the Shareware notice document.
-
-
-
-
- 1.2 Authoring
-
-
- Creating Hypertext documents is known as 'authoring'. The
- process of creating an effective Hypertext document is similar
- to producing a reference book, although the structure is very
- different. A great deal of planning is necessary before a
- hyperfile is created, as the information has to be broken down
- into units called 'frames', and links created to bind these
- frames together.
-
- HyperShell files, known as 'hyperfiles', consist of the text to
- be read by the 'user', and control information. In its simplest
- form, a HyperShell document has to be split into 'frames' of a
- certain size and each frame needs to be identified. Some means
-
-
-
- - 2 -
-
-
-
-
-
-
-
-
- HyperShell Introduction Authoring Guide
-
-
-
- of moving from a frame to related frames is also necessary, even
- if it is just to permit stepping through the frames
- sequentially. HyperShell provides some standard commands to
- provide selection from a table of contents, searching for a
- string etc. The real power of Hypertext, however, is provided
- by embedded references in the text to other frames or sources of
- information. HyperShell provides these in a straightforward and
- powerful way, and also provides popup menus and paged displays,
- as well as a whole range of generic actions.
-
- The creation of the hyperfile can be done using a simple text
- editor or word processor, or can be done using the HyperShell
- authoring tools. The tutorial will assume the use of the
- HyperShell editor.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1-3 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
-
-
-
-
-
-
- Chapter 2
-
- Tutorial
-
-
-
-
- 2.1 File contents
-
-
- A hyperfile is a simple text file, in that it contains lines of
- text which can be viewed or edited with conventional text
- handling utilities such as text editors. The hyperfile contains
- identification and formatting details of the frames and other
- items in the file. It is made up of items general to the
- hyperfile, and items relating to each frame in the hyperfile.
- Note that the order of certain items is critical for the correct
- operation of the hyperfile, but in most cases HyperShell takes a
- rather relaxed attitude towards minor misdemeanors and will not
- complain if it finds things it wasn't expecting. This may mean,
- however, that you can make mistakes and that these will not be
- immediately obvious when you run HyperShell. The checking
- utility is provided to assist with the detection of errors and
- of unresolved cross references.
-
-
-
-
- 2.2 Tutorial
-
-
- 2.2.1 Simple hypertext
-
- The most simple hyperfile contains a number of small blocks of
- text held in frames. A frame is the unit of presentation, being
- the set of information presented at one time. The frames
- usually hold information about one subject, and the name of the
- subject usually forms the name of the frame. To produce a
- hyperfile, we can use the HyperShell editor. To invoke the
- editor, make sure you have the program HE.EXE available to run,
- and that you have sufficient space on the default drive and
- directory to store the resulting file (about 40k). For the
- example, we will create a hyperfile about cars, called CAR.HYP.
- To create this, type:-
-
-
-
- 2-4 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- A> he -c car
-
- The editor will create a file with one frame in it called
- 'introduction', and will display that frame. To change the name
- and title of this frame, we just press Shift-F5. At the bottom
- of the screen, the editor will ask for the new name and then the
- new title. We can call the frame 'the car' and give it a title
- of 'all about cars'. After changing the details the new name
- and title will be displayed at the top of the frame display. We
- can now enter some text for the frame. Pressing F4 will cause
- the editor to enter edit mode on the current frame. In edit
- mode, you can type in text just as with a word processor or text
- editor. You can move around the text using the cursor keys,
- delete text using the delete keys, and enter new text at any
- point just by typing. If you now enter the following text, you
- can see how this works (don't worry if the text isn't in the
- exact format). If you get in a mess, you can always exit from
- the editor, delete the file, and start over.
-
-
-
- The car is a very important item in our everyday life, yet
- we do not think about what is going on inside the engine
- of the car, or of how the brakes make the car stop. The
- bodywork of a car does more than keep the rain out, and
- the electric system provides much more than is at first
- apparent.
-
- When you have completed this, you can exit the edit mode by
- pressing F10. The text will appear along with the name and title
- in the frame display. We now need to create further frames
- about the engine etc. To add a frame, press Shift-F1, then
- supply the frame name and title. Do this now, supplying the
- name 'engine' and title 'the power plant'. After you have done
- this, the editor automatically puts you into edit mode to enter
- the text for the frame. Enter the following text:-
-
-
-
- The engine provides the central power unit for the car. It
- powers the wheels to move the car along. It generates
- electricity for the battery and the electric system. It
- provides heat to keep the windscreen clear of condensation,
- and to keep you warm. The engine runs on some form of fuel.
-
- After you have entered this, type F10 to exit. Use the same
- mechanism to enter the following frames:-
-
- name 'electric system' title 'electrical components'
-
-
-
-
- 2-5 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
-
-
- The electric system of the car provides a number of essential
- services. The battery is used to store electricity for starting
- the car, and to act as a reservoir for when a heavy load is
- placed on the electric system. The ignition system is used to
- provide the sparks to ignite the fuel in the engine. The
- lighting system provides lights for indicating, warning, and
- night driving. The in car entertainment system is used to stop
- you from getting bored on long trips.
-
- name 'bodywork' title 'the shell of the car'
-
-
-
- The bodywork of the car provides the main structure which holds
- together the components of the car. It provides a secure and
- weatherproof compartment for you to travel in, and gives you
- something to polish in the summer and worry about in the
- winter.
-
- name 'brakes' title 'the braking system'
-
-
-
- The braking system of the car provides the means of stopping
- the car. Brakes on a car need two independant systems for
- braking, so that one system can act as a backup if the
- other one fails. Normally, there is a hydraulic footbrake
- system and a cable operated handbrake, although some cars
- have hydraulic handbrakes.
-
- name 'ignition system' title 'to ignite the fuel'
-
-
-
- The ignition system provides a spark to ignite the fuel
- vapour drawn into the cylinders through the carburettor.
- The spark is timed to ignite the fuel just before the
- piston gets to the top of its stroke, so that the energy
- will peak during the downward stroke. A distributor directs
- the spark from the coil to the correct sparking plug.
-
- When you have done this, you have a very simple hyperfile set
- up. To provide some cross-references, the autoreference action
- can be performed on each frame. To select each frame in turn,
- select the contents list from the frame display control menu (or
- press F2), then select the frame from the list by pressing the
- letter in brackets at the left, or by using the mouse or TAB key
- to select the frame reference. This should put you in frame
-
-
-
- 2-6 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- display mode for the frame selected. If you select the first
- frame ('the car'), you can then press F4 to enter edit mode on
- that frame. When in edit mode, you can press SHIFT F9 which
- causes reference flags to be added to the frame text. You can
- now press F10 to exit the edit mode for that frame and select
- the next one from the contents list. When you have finished
- doing this to all the frames, you should be able to navigate
- around the frames by selecting the highlighted references.
-
- It is normally best to do the autoreferencing after you have
- added all frames and other items to the hyperfile. When you do
- this on your own files, you may see certain references
- highlighted that are not what you expected, and are meaningless
- in the context in which they occur. To remove unwanted
- references whilst still in edit mode, simply position the text
- cursor over the reference and press CTRL F3.
-
- Now that you have set up your hyperfile, you can exit the editor
- by pressing F10. You may now run the browser against it by
- typing:-
-
- hs car
-
- You can now see your first hyperfile in action. You can see
- that it is fairly easy to set up a simple hyperfile, but you
- will want to improve the appearance of the display, and to offer
- more supporting information in many cases, so we will progress
- the hyperfile.
-
-
- 2.2.2 Adding features
-
- Suppose you want to add your own special heading to appear on
- each frame of the hyperfile. This is easier than you may
- imagine. Reenter the editor now, so we can add some more items
- to the hyperfile.
-
- he car
-
- As we want to add a header section, we will need to select the
- global item list by pressing F5 from the frame display. You
- will see that at the start of the list is a .REMARK item. We
- will add the header after this. To do this, select the .REMARK
- item by pressing the letter to the left of it, or by selecting
- the reference. A menu will now popup, and you should select
- INSERT NEW ITEM AFTER. This will in turn pop up a menu asking
- what type of item you want to insert - select the HEADER
- option. You will now be prompted for the name of the item you
- wish to copy text from. You may just press RETURN here to not
- copy any text. To enter the text for the header, you need to
-
-
-
- 2-7 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- select the HEADER item, and take the EDIT ITEM option on the
- menu. You will now be put into edit mode on the HEADER section,
- and should enter the following text:-
-
-
-
- [$1] [$2] All about cars [$4] [$5]
-
- This sets up the header to contain the frame name and title, a
- general heading and the date and time. When you have done this,
- you can press F10 to exit the edit mode. This will return you
- to the global item list. If you now select the HEADER item
- again, only this time select INSERT NEW ITEM AFTER, and choose
- FOOTER from the item type menu. Again press RETURN when the
- request for copied item prompt appears. Then select the FOOTER
- item and take the EDIT ITEM option on the menu. This will enter
- edit mode for the FOOTER. Enter the following text, this time
- watching the display line at the bottom to see what is being
- entered:-
-
-
- ~L20
- ~MTerms~E
-
- This sets up a footer section at line 20 which will give a menu
- of terms used in the hyperfile, each explained by a popup note.
- Then exit from edit mode by pressing F10. You now want to add a
- global menu item, which can be done by selecting the FOOTER
- item, and then taking the INSERT NEW ITEM AFTER option. Select
- MENU from the item menu, and enter 'Terms' as the name of the
- menu. Press RETURN for the copy from item prompt again. Then
- select the 'Terms' reference and take the EDIT ITEM option.
- Enter the following text:-
-
-
- Carburettor |NCarburettor
- Fuel |NFuel
- Spark |NSpark
-
- This sets up the menu of terms, with a note reference for each
- term. Exit from the edit mode by pressing F10. You now need to
- add the three notes. Do each in turn by following the example
- as for the 'Terms' menu, adding each note after the menu or
- after the previous note, and enter the following note texts:-
-
-
- name 'Carburettor'
-
- A carburettor is a device which
- is used to mix air with fuel.
-
-
-
- 2-8 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- The air is drawn in by the piston
- descending on alternative strokes.
- The air is first filtered through
- an air filter. The fuel is kept
- at a certain level in a float
- chamber next to the carburettor,
- and is sucked into the air stream.
-
- name 'Fuel'
-
- Fuel is the liquid or gas used in
- the engine to produce the energy.
- When the fuel vapour ignites, the
- gas expands and pushes the piston
- down. The mixture is generally
- ignited by a spark from a spark
- plug fed from an ignition coil.
-
- name 'spark'
-
- A spark is caused by the discharge
- of a high electric voltage across
- a gap. The voltage is generated by
- a coil with two windings, one a low
- voltage winding connected to the
- battery, and interrupted by the
- contact breaker and the other a high
- voltage winding connected through
- the distributor to the spark plug.
-
- After you have done this, press ESC to return to the frame
- display.
-
- The menu and notes provide additional material in support of the
- main frames. Note that these global notes should be kept
- together, as should global menus and scripts. You can add the
- note references to the frames by using the autoreference
- facility again, as you did to begin with, for all frames and
- notes. Whilst you are in edit mode for the 'ignition system'
- frame, try positioning the cursor on the word 'distributor',
- then press SHIFT F4. This will flag the word as a local note.
-
- When you have done this you can exit the editor and try out the
- hyperfile with HyperShell. You will note that when you select
- the 'distributor' reference, a message is issued saying that the
- item is not available. If you try running the checker program,
- it will check all the references and tell you what is wrong:-
-
- hc car
-
-
-
-
- 2-9 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- You should now reenter the editor and use the contents list to
- select the 'ignition system' frame. When you have selected
- this, press SHIFT F2. This will prompt for a note name, and you
- should enter 'distributor'. It will then enter edit mode and you
- can enter the following text:-
-
-
-
- The distributor is used to direct
- the high voltage current from the
- coil to one of the spark plugs.
- It also contains the low voltage
- contact breaker points, which
- determine when the sparks are
- produced.
-
- When you have done this, press F10 to exit edit mode, and again
- to save the file and exit the editor. Try out the hyperfile
- again, and the distributor note should popup when selected.
- This note is available only from this one frame, and is known as
- a 'local' note. A note with the same name can exist for another
- frame, but will be a different note, local to that frame.
-
- With the knowledge you now have, you can set up your own complex
- hyperfiles. You may like to extend the car hyperfile, and play
- around with adding further notes and menus, and modifying the
- header and footer texts.
-
-
- 2.2.3 Adding further features
-
- The straightforward hyperfile design described above, along with
- the HyperShell browser, provides a full traditional hypertext
- system.
-
- Additional features specific to HyperShell can be added to
- enhance the operation of a hypertext document. Some of these
- are described in this section.
-
-
- 2.2.3.1 Help
-
- A simple help facility is probably the first feature you will
- want to add to your system. The '?' key is used to attempt to
- invoke a global menu called 'help', which should only contain
- global note actions. This may be used for a simple help
- system. Note that this form of help is available from the paged
- display screen as well. The help system may be used to describe
- the operation of HyperShell and any specific operational aspects
- of the hyperfile, or can be used in support of the main
-
-
-
- 2-10 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- hyperfile material. The 'car' hyperfile could have a simple
- system describing how to use HyperShell to navigate around. To
- add such a system to the car hyperfile, insert a global menu
- called 'help' containing the following text:-
-
-
-
-
- Selecting |NSelecting
- Control keys |NControl keys
-
- and some global notes as follows:-
-
- Note name 'Selecting' containing:-
-
-
- You can follow references
- to move between frames and
- to display popup notes and
- menus. To select a reference
- position the mouse cursor
- using the mouse, cursor keys
- or TAB and SHIFT/TAB, then
- select by pressing ENTER, or
- the LEFT mouse button.
-
- and the note 'Control keys' containing:-
-
-
- You can use the function keys to control
- the system. The function keys are setup
- as follows:-
-
- F1 - Go to introductory frame
- F2 - Display contents of file
- F3 - Move back to previous reference
- F4 - Move back a number of steps
- F5 - Display list of noted frame
- F6 - Search file for text string
- F7 - Display contents of text file
- F8 - Perform requested action
- F9 - Temporary exit to DOS
- F10 - Quit to DOS
-
- This provides a fairly simple help system. To provide further
- features in a help system, the F1 key can be mapped to provide
- the help menu. More complex interaction with the help system is
- then possible, and the help menu is not limited to simple note
- references. To do this, you will need to create a SETUP
- script. This is simply a global script with the name 'SETUP'.
-
-
-
- 2-11 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- This should contain the following lines:-
-
-
-
-
- KF1MHelp
- MF1Help
-
- The first of these lines maps the F1 key to the global menu
- 'Help'. Note that frame,note,menu and script names are not
- sensitive to whether the name is in uppercase or lowercase or
- mixed case, and references can use cases different to the item
- names.
-
- The second line changes the text of the control menu for the F1
- action to be 'Help', rather than the default of 'Home Frame'.
-
- The SETUP script is run whenever the hyperfile is 'entered'
- which is usually on startup when running HyperShell against the
- file. It will also be executed if you select a reference to
- this hyperfile from another hyperfile. It can therefore be used
- to set up any key mappings, colour schemes, options etc.
- required by a hyperfile.
-
-
- 2.2.3.2 Narrative flow
-
- Someone reading the hyperfile will normally follow a sequence of
- frames, and only divert to references when required. To provide
- a means of stepping through the frames of information, you can
- add a 'next frame' reference to the FOOTER text. To do this in
- the car hyperfile, edit the FOOTER frame text to the following:-
-
-
-
-
- ~L20
- ~MTerms~E ~APress space bar to continue~PF+~K ~E
-
- This will provide a selectable action in the footer of each page
- which will cause the next frame to be displayed. It also maps
- the space key (or bar) to this reference ('~K ' does this), to
- enable the user to simply step through. Note that this type of
- frame reference (F+) will keep a backtrack list to allow the
- user to step back through the frames. It is also possible to
- step through so that no backtrack information is retained. This
- is done using the lowercase form of the reference (f+) in place
- of the other.
-
-
-
-
-
- 2-12 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
-
-
- 2.2.3.3 Supporting files
-
- Normal text files, and files with just reference flags in them,
- can be used in support of the hyperfile in two ways. The F7 key
- allows a filename to be entered, and effectively issues a 'T'
- action to display the file a page at a time. The 'T' action can
- also be called from a reference in the text, as can any action.
- This reference takes the form e.g.
-
- ~ACar manual~PTmanual.txt~E
-
- The text 'Car manual' will appear as a highlighted reference in
- the text, and when selected will cause the file 'manual.txt' to
- be typed. This file may contain embedded references to the
- frames in the car hyperfile. One way to achieve this is to do
- it automatically when typing the file, rather than having to
- actually modify the file. This is known as autoreferencing, and
- is similar to the autoreference feature we met in the editor.
- To enable this, the line:-
-
- O41
-
- would be added to the SETUP script (this starts with the LETTER
- O, not the figure 0). When this is done, a reference in the
- manual.txt file to 'bodywork' or 'brakes' would be highlighted
- when the file was typed, and could be selected, whereupon the
- relevant frame would be displayed. This feature permits the
- file viewing to be continued by simply issuing the action 'T'
- without a file name parameter. This action is provided by the
- F7 key.
-
- Another way that text files may be used in support of a
- hyperfile is the 'file note'. A reference of the form:-
-
- ~tradios~E
-
- refers to a file called 'radios.nte' which is displayed as a
- popup note when the reference is selected. You can try this out
- in the car hyperfile, by inserting the above reference in the
- electric system frame, and by providing a simple text file with
- the correct name. Note that the extension '.NTE' is added only
- if one is not supplied in the reference, so for instance if we
- had a file called 'radios.txt' we could have a reference of the
- form:-
-
- ~tradios~Ptradios.txt~E
-
-
-
-
-
- 2-13 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- Note that this uses the action code 't', which has the same
- effect as the reference flag.
-
-
- 2.2.4 Menu systems
-
- HyperShell can be used as a versatile menu system, but cannot
- remain resident with heavyweight software or software requiring
- lots of data storage. It can still be used with such systems,
- as it permits 'chaining' and allows an exit code to be given on
- exit.
-
- A simple menu system can be built using a frame for each menu.
- The higher levels of menu consist of frames containing choices
- leading to frame references to the lower levels. At the bottom
- level, selection of a reference will cause the invocation of a
- program command line.
-
- A simple one frame menu can be used to drive a small number of
- programs. This example shows the actual text in the hyperfile,
- but can be built using the HyperShell editor, entering an empty
- HEADER item and the text from the FRAME as below:-
-
-
-
-
- .HEADER
- .FRAME menu1
-
- --- My Menu ---
-
- ~A1. Accounts~PDaccounts~K1~E
-
- ~A2. Invoices~PDinvoices~K2~E
-
- ~A3. Payroll~PDpayroll~K3~E
-
- ~A4. Spreadsheet~PE123~K4~E
-
- ~A5. Exit~PQ~K5~E
- .
-
- This menu allows the options to be selected as normal, or by use
- of the numeric keys 1 to 5.
-
- Note that the spreadsheet option causes the program to be
- chained rather than executed as a subprocess, to allow the
- spreadsheet to have all the memory to itself.
-
-
-
-
-
- 2-14 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Tutorial Authoring Guide
-
-
-
- This little example can be tried out, although of course the
- programs will not be available.
-
- The null header can be used in other hyperfiles, and will
- suppress the default header display.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2-15 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
-
-
-
-
-
-
- Chapter 3
-
- Guidelines
-
-
-
-
- 3.1 Naming
-
-
- The names of frames and other items in the hyperfile are a very
- important ingredient of the file, and careful naming will
- contribute both to the setting up and to the use of the
- hyperfile. The names of items are not limited to single words,
- and can contain spaces. It is preferable to avoid multiple
- spaces, and you must ensure that no trailing spaces are added to
- the name. The name, when used as a key, is not case sensitive,
- so the most appropriate case mix can be used for the name.
- Names of items must not exceed 30 characters, but is is hoped
- that the majority will not exceed half of this. Names should be
- as simple as possible, whilst retaining sufficient text to be
- meaningful and distinguishable.
-
-
- 3.1.1 Frame names
-
- The choice of suitable frame names is most important, and the
- names should be chosen as part of the planning activity, rather
- than as and when you need to supply them. As the names are used
- in references from other frames, they could be chosen to match
- the words or phrases used in the text. This is very much a
- chicken and egg situation, as you may well want to enter the
- text after setting up the skeleton file.
-
- One way of achieving this is to produce a list of temporary
- names for the frames to act as place holders. Once you have
- entered the text for all the frames, and before you have added
- any references, you could study the text to see what form the
- references would take. You can then make the references
- consistent, change the frame names to reflect these, and
- autoreference the frames. This will help you to see if
- sufficient references have been flagged.
-
-
-
-
-
- 3-16 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
-
-
- 3.1.2 Frame Titles
-
- The frame title text is almost as important as the name. It
- appears in the contents list and search list, and is used in the
- fast search. It is therefore important to choose a title which
- will give a good indication of what the frame is about.
-
-
- 3.1.3 Other items
-
- The note, menu and script names are important only if they are
- directly referenced from the frame or note text, but it is
- obviously helpful to keep these names short and meaningful for
- all cases. The menu name and the note name will be displayed at
- the top of the respective popup displays, so should be kept to a
- length commensurate with the options or text lines.
-
-
-
-
- 3.2 Style
-
-
- The hyperfile should be clearly laid out to permit ease of
- maintenance.
-
- The HEADER and FOOTER should come at the start of the
- hyperfile. Global notes, menus and scripts should come next in
- the file, and should be grouped by type. The INDEX specifier
- should come next, followed by the frame specifications. Each
- frame specification contains the FRAME section, followed by any
- local notes, menus and scripts.
-
- The format and content of the information should be consistent.
- The frames and notes should be written in plain, simple to
- understand language, and technical terms should be confined to
- the vocabulary of the intended user. Terms should be consistent
- in use. Text should be presented in short paragraphs, and
- should have a consistent left hand margin and a reasonable right
- hand margin. The justification of text by inserting extra
- spaces throughout the line to give a uniform right hand margin
- is not recommended, as it may cause references to become
- inaccurate, and is now widely recognized as not being of any
- help when viewed on a screen in this form.
-
- The information held within a frame or a note should be
- complete, and capable of being read on its own. A frame should
- not present more than half a dozen different concepts, and a
-
-
-
- 3-17 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
- note should only present one new concept. The information must
- be as accurate as possible as any inaccuracies will reduce the
- users confidence.
-
-
-
-
- 3.3 Developing a hyperfile
-
-
- Before producing a hyperfile, it is advisable to decide what
- form it is to take, what fixed information is to appear on the
- frame display, whether any changes to the control menu are
- necessary, whether any keys are to be mapped globally or
- locally, and whether any special highlighting schemes are to be
- used. These factors can then be taken into account when
- producing the main text.
-
-
- 3.3.1 Using existing material
-
- Existing textual files, provided they are not special format
- Word Processor files containing control characters etc., can be
- adapted fairly readily. A text editor or word processor can be
- used to break the file into sections, inserting a .FRAME section
- header before each, with a suitable topic name. The HyperShell
- editor can then be used to alter the layout of the frames, to
- split the frames into further frames or local notes, to add
- references using autoreferencing, and to restructure the
- hyperfile. The hyperfile checker can also be used to add cross
- references using the autoreference facility, and to check the
- cross reference integrity of the hyperfile.
-
- Small text files can be inserted into frames by use of the
- insert file facility in the editor.
-
- Small text files can be used as popup notes, although it is
- preferable to integrate these with the main hyperfile, as global
- notes.
-
-
-
-
- 3.4 Types of application
-
-
- For narrative hypertext, the frames should be organised so that
- a logical thread can be followed. Supporting threads then form
- offshoots from this main thread. The resultant structure will
- probably be a network structure, based on a linear or
-
-
-
- 3-18 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
- hierarchical backbone. Global and local notes can be used in
- support of the main text.
-
- For a help system, each frame can relate to a particular command
- name, command mode or technical term. Each frame should provide
- a complete packet of information, and supportive frames need
- only be produced and referenced as required. The structure for
- a help system is usually a hierarchy, with occasional
- cross-references forming network links. Global and local notes
- can again be used to explain odd terms used in the main text.
- For context related help, a number of 'entry' frames can be
- created, each supporting a hierarchy of further information,
- breaking down the detail of a topic; a top level frame providing
- a menu of these entry frames is also useful as a general entry
- point. HyperShell can be used as a context related help
- facility from your own programs. Your program needs to execute
- the HyperShell program, specifying the hyperfile name and the
- 'entry' frame name as parameters. HyperShell can set its exit
- status to pass numeric information back to your program on exit,
- if required, by use of a numeric parameter on the Q action.
-
- For a menu system, each frame forms a menu node in a hierarchy,
- although a hierarchy is not strictly necessary. Input fields
- can be used to supply parameters to programs. Dynamic menus
- formed from wildcard directories can be used to select a file to
- be used as a parameter, the resultant value being placed in a
- variable prior to program invocation. Scripts can be executed
- to perform sequences of programs, and to do limited validation
- on input parameters. The HyperShell exit status can be set by
- use of a numeric parameter to the Q action, and this may be
- tested in a batch command file to influence the control flow.
-
- For an expert system, a hierarchy of frames can be set up to
- reflect the nodes in a decision tree. Hierarchies of menus can
- be used as well as, or instead of frames in this decision
- process. Local notes can be used as 'help' about choices.
- Scripts can be used to perform limited processing and decision
- making using control flow and expression evaluation.
-
- For computer aided instruction, a sequence of frames can present
- information about a topic, then offer a multiple choice answer
- frame. Correct answers move on to next topic frame, incorrect
- answers move back to original topic frame. Variables can be
- used to monitor progress and record error levels.
-
- For user interface prototyping, a number of different frames can
- be set up to present alternative layouts for an application
- input screen. Input fields, menus, notes and scripts can be
- used to simulate interaction style. Programs can be executed to
- provide substance to the application.
-
-
-
- 3-19 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
- For a DOS manager, a basic script running extended directory
- listings should be set up to allow browsing of directory
- structures and examination of text files. Actions to take
- against a particular file can then depend on file type, or could
- be selected from menus. Use of system variables < and > permit
- file name and extension to be accessed within the script.
-
- For a general text file viewer, with supporting 'topic'
- hyperfile, a hyperfile should be set up with topic frame names
- chosen to pick up topics mentioned in the general text files.
- Autoreferencing should be switched on in the setup script using
- the action 'O41'.
-
- For an adventure system, the network of frames can be made as
- complex as possible, and menus, notes and scripts can be used to
- good effect. Variables can be used to hold the state of play.
- The 'ghost' highlighting scheme is effective in an adventure, as
- the text highlighted in this manner is not visible until the
- mouse cursor is moved over it. A new wave of adventures, known
- as 'hyperware', is due to arrive shortly, and will use hypertext
- principles, albeit in a graphic context.
-
-
-
-
- 3.5 Master hyperfile
-
-
- Where a number of hyperfiles are used together, it is useful to
- bind them with a master hyperfile which describes each and
- references the introductory frame in each. More complex
- structures are, of course, possible, and the structuring then
- depends on the application.
-
-
-
-
- 3.6 Alternative structure
-
-
- An alternative hypertext structure is possible which permits
- existing text files to be more readily adapted to a hypertext
- system. With this structure, a small controlling hyperfile may
- be set up, which may provide a set of supporting frames and
- switch on autoreferencing. The main hypertext material will be
- held in a number of simple text files. These files will contain
- cross references to other such files in the form
- ~Areference~PTfilename.txt~E. These cross references could occur
- anywhere in the text of the file, and would be highlighted when
- the file is browsed. Other forms of highlighting can be chosen
-
-
-
- 3-20 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Guidelines Authoring Guide
-
-
-
- by using ~F, ~N, ~M etc. as introductory flags.
-
- The 'file as note' reference is particularly applicable to this
- form of hypertext structure, and permits a set of supporting
- popup notes to be supplied from small text files. These can
- contain references to further note files, or to further text
- files to be 'typed'.
-
- The control hyperfile could provide an action in its header or
- footer text, or on its control menu, which will have the action
- T@D*.TXT (or T@L*.TXT if there are more than 20 text files).
- This will enable a menu of these files to be presented for
- initial selection. Of course the files could be grouped by
- initial letter and a number of actions of the form T@DA*.TXT,
- T@DB*.TXT etc. could be provided, possibly from a menu. Also
- the popup notes can be made available from a menu in a similar
- fashion using the action t@D*.NTE.
-
- The MSDOS subdirectory facilities provide a convenient means of
- structuring sets of text files in a hierarchy. The 'C' action
- allows selection of a subdirectory, and the same set of dynamic
- menus can be used at each level. The original directory path is
- always available via a system variable for when a return to
- 'base' is required. The intermediate levels of directory
- pathname can be stored in a list to permit 'backtracking'.
-
- Other forms of reference can be used in the text files, and the
- text file display will be reentered after a Note display, and
- after DOS command execution. Explicit reentry can be achieved
- by including ';T' at the end of any action strings in other
- forms of reference.
-
- It is not strictly necessary to have a controlling hyperfile at
- all. If a simple text file with embedded references etc. is
- named instead of a hyperfile when HyperShell is invoked, then
- that file will be treated as a hyperfile with one frame
- containing the text in the file.
-
- The degree of integration of the two approaches is variable, and
- it is quite possible to have a hybrid approach offering
- substantial material from both hyperfiles and text files.
-
- The alternative approach has the advantage that the text files
- and notes can be produced 'on the fly' using a text editor
- possibly driven from the controlling hyperfile. This offers a
- number of attractions to those gathering information for cross
- referencing.
-
-
-
-
-
-
- 3-21 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
-
-
-
-
-
-
- Chapter 4
-
- Advanced techniques
-
-
-
-
- 4.1 Programming
-
-
- The HyperShell browser can be thought of as an interpreter. It
- is similar in many ways to a high level language interpreter
- such as BASIC. Because it was designed for the presentation of
- information, it does not contain conventional language
- statements, floating point arithmetic, arrays or control
- structures. Nevertheless, a lot of conventional programming
- constructs can be achieved using the SCRIPT facility, and the
- set of actions.
-
- We will approach this topic as we would a programming language,
- and will demonstrate each construct by giving the equivalent
- BASIC statements, where possible.
-
-
- 4.1.1 Actions
-
- The 'action' is the HyperShell equivalent of a command in a
- normal programming language. An action is a command string
- which causes an action to be taken depending on the first letter
- of the action string. The parameters or operands of an action
- comprise the remainder of the action string. This part of the
- string can be supplied literally, or can be supplied as the
- result of a function, which is called an 'action modifier' in
- HyperShell. Thus to set a variable to a constant value, the
- action would be:-
-
- Vafred
-
- This would give variable 'a' the value 'fred'. To set the
- variable dynamically to a value chosen from a menu, the action
- would be:-
-
- Va@Mnames
-
-
-
-
- 4-22 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- This would popup the menu called 'names' to allow one of a set
- of names to be selected by the user. The selected name would
- replace the modifier string in the action before it was
- executed. Action modifiers can be 'cascaded' to give complex
- interaction functionality. For example, to type a file selected
- from a menu formed from a directory listing of files with a
- wildcard specification input from the user, the action would
- be:-
-
- T@D?Wildcard specification
-
- This would prompt the user for a wildcard specification, which
- would be used to select files from the current directory to form
- a menu from which the user could select a file to type. If the
- result of an action modifier is not usable in its provided
- state, it can be further formatted using a format string:-
-
- D@D*.DAT|COPY %s A:%s
-
- This would present a menu of all files with the extension .DAT
- in the current directory, and would then copy the selected file
- to the A: drive.
-
-
- 4.1.2 Variables
-
- Variables do not need to be declared, and come into existance by
- assignment. Single letter variables are assigned using the 'V'
- action, and take the value of the remaining text in the action
- string. e.g.
-
- Vafred (BASIC LET a = "fred")
-
- assigns the value 'fred' to the variable 'a'. The variable can
- have another value subsequently assigned to it, or it can be
- cleared by use of a null string (a string of zero length).
-
- Named variables are assigned using the 'l' action, and can only
- be assigned values from single letter variables. e.g.
-
- laname (BASIC LET name = a)
-
- Note that the name in this case can be provided from an action
- modifier, or from a variable token expansion. e.g.
-
- la$b
-
- This loads the contents of 'a' into the variable whose name is
- the contents of variable 'b'. There is no equivalent of this in
- BASIC, or any of the other common interpretive languages for
-
-
-
- 4-23 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- that matter.
-
- The variable may be used in a number of ways. The most common
- is as an expansion token in the frame or note text, or in an
- action string. The above example does not reflect the full
- power of this as the variable can in fact be expanded anywhere
- in an action string after the first letter. So for instance, to
- load the variable whose name is a concatenation of the contents
- of the variables 'c' and 'd' from the single letter variable
- whose name is contained in variable 'x', we would write:-
-
- l$x$c$d
-
- The named variable expansion token takes the form:-
-
- $(name)
-
- Where 'name' is the name of the named variable. This itself can
- be supplied by a single letter variable. e.g.
-
- $($b)
-
- Thus to do the opposite of 'la$b' we would write:-
-
- Va$($b)
-
- Variable token substitution is done in frame and note text
- before displaying the text (so variables can contain reference
- flags). Variable token substitution is done in action strings
- AFTER any action modifiers have been actioned and before the
- action is executed. Thus an action string of the form:-
-
- Vb?value of b
-
- could have a value of '$c' typed in by the user, which would be
- expanded to the contents of variable 'c' before the assignment
- was made.
-
- A variable token expansion can be 'deferred' one step by putting
- two $ signs. This will be converted to one $ on the first
- expansion and will be expanded on the second. Thus a variable
- token in an action string in a reference on a frame display
- should have two $ signs, as the expansion on display would
- otherwise preempt the intended expansion when the reference was
- actioned.
-
- Single letter variables can be used directly in an integer
- expression action modifier. Thus an action of the form:-
-
-
-
-
-
- 4-24 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- Va=b+c (BASIC LET a = b + c)
-
- will do as expected.
-
- Variables can also be used in this manner in tests, thus we can
- have:-
-
- va=b+c+d;je10 (BASIC IF a = b + c + d GOTO 10)
-
- When a variable comparison is performed, a number of condition
- codes are set, and can be tested. If the variable and test
- string are numeric, the comparison is a numeric comparison,
- otherwise it is a string comparison and works as an ASCII
- collating sequence string compare. This compares variable 'a'
- against 23 and jumps to LESS if it is less than 23.
-
- va23;jlLESS
-
- This compares variable 'n' against 'fred' and jumps to FRED if
- it is equal.
-
- vnfred;jeFRED
-
- Also, a substring and superstring compare is done, so that you
- can test whether the variable is contained within the string, or
- contains the string. This sees if variable 'e' is one of
- 'one','two','three' and jumps to Lone, Ltwo or Lthree if so:-
-
- veone two three;jw$e
-
- It is sometimes useful to test whether the variable is defined
- at all. This sees if variable 'j' is defined and jumps to
- DEFINED if so:-
-
- vj;jdDEFINED
-
- A number of system variables are available, mapped to the
- numeric and other characters. Most of these cannot have values
- explicitly assigned to them, but can be expanded in exactly the
- same way as single letter variables. See the reference guide
- for details of these.
-
- It is often necessary to break a string into, for instance, a
- number of fields. The fields can be specified as those strings
- separated by a specified character. Thus a string could have
- the form "aaaa:bbbbbb:ccc:dd". This can be split into a number
- of variables with an action of the form
-
- es:abcd
-
-
-
-
- 4-25 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- Where 's' is the variable containing the string, and a,b,c and d
- are the variables to receive the fields. In the example above,
- variable 'a' would receive 'aaaa', variable 'b' would receive
- 'bbbbbb' etc.
-
- Whilst arrays are not supported as such, constant arrays can be
- implemented using a menu, and using the form:-
-
- Vn@Mnames($v)
-
- This uses the value of variable 'v' as an index into the set of
- strings specified in the menu called 'names', returning the
- indexed entry and assigning it to variable 'n'. Associative
- arrays i.e. arrays subscripted by character strings, can be set
- up using menus with entries containing the key string and the
- associated string, and indexed using the form:-
-
- Vs@Msurnames[$n]
-
- This takes the contents of variable 'n' as a key to look up an
- entry in the menu 'surnames', returning the action string from
- the located entry and assigning it to the string 's'. The menu
- 'surnames' would have the following form:-
-
-
- fred|jones
- jim|smith
- joe|davies
- harry|hodgson
- nick|taylor
-
-
- 4.1.3 Scripts
-
- The script facilities in HyperShell permit a form of programming
- to be achieved. A simple sequence of actions may be performed
- in a script, and control flow actions are provided to allow
- loops, conditional branching and computed branching to occur. A
- trace facility is provided to assist with the debugging of
- scripts. HyperShell does not yet have any specific loop control
- instructions, but loops are easy to program using the Jump
- action. Thus, a BASIC loop of the form:-
-
-
-
- FOR A = 1 TO 20
- ...
- NEXT A
-
- is handled as follows:-
-
-
-
- 4-26 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
-
- VA1
- Lloop
- ...
- VA=A+1;va21;jlloop
-
- As the expression evaluation modifier sets the condition code, a
- decreasing loop is easier to use when the variable is not used
- in the loop body.
-
-
-
- VA20
- Lloop
- ...
- VA=A-1;jnloop
-
- Beware an unexpected side effect of HyperShell compound
- statements. If further actions follow a Jump instruction in a
- compound statement, the further actions are executed regardless
- of whether the jump is actioned.
-
- Computed GOTO statements in BASIC of the form:-
-
- ON a GOTO 110,120,130,140
-
- can be coded in HyperShell with a simple Jump specifying the
- value of a variable.
-
- J$a
-
- The variable, 'a' in this case, need not contain a numeric
- value, as a label can be any alphabetic string. E.g. to branch
- depending on the value returned from a confirmation prompt:-
-
-
-
-
- J$c
- ...
- LYes
- ... actions if Yes ...
- Jend
- LNo
- ... actions if No ...
- Lend
-
- Of course, the Jump action can have its parameter supplied from
- one of a number of action modifiers, so a number of potential
- labels could be presented as a menu:-
-
-
-
- 4-27 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- J@Mchoices
-
- It is not possible to supply the name of a label in an 'L'
- action in this fashion.
-
-
- 4.1.4 Simple interaction
-
- The BASIC interaction commands are very useful for communicating
- with the user. HyperShell has some equivalents to the simple
- interaction commands as follows:-
-
- Vn?Enter your name (BASIC INPUT "Enter your name";n$)
-
- PHello (BASIC PRINT "Hello")
-
- PYour name is $n (BASIC PRINT "Your name is ";n$)
-
- Do not confuse the use of the dollars in the last example.
- HyperShell uses dollar signs for an altogether different
- purpose.
-
- HyperShell provides powerful extensions to this interaction,
- however. If one of a number of fixed strings is to be entered,
- the set of strings can be presented as a menu. If a more
- elaborate prompting method is required, a note can be popped up
- as a dialogue box. The menu or note are then used to supply the
- value to the variable:-
-
- Vt@MCar type
-
- Vc@NConfirm
-
- Where a single character input is required, the Key function can
- be used. This is coded as e.g.
-
- Vx&KPress a key
-
- And is the equivalent of the BASIC:-
-
-
-
- 30 PRINT "Press a key"
- 40 X$ = ""
- 50 X$ = INKEY$(): IF X$ = "" GOTO 50
-
-
-
-
-
-
-
-
- 4-28 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
-
-
- 4.1.5 Functions
-
- A number of string functions are available as 'action
- modifiers'. Strictly, all action modifiers are functions of a
- sort, but the string functions are classified as 'functions' to
- separate them from the dynamic menus and other string
- providers. The string functions provide a set of facilities
- analogous to the BASIC functions, although even those returning
- a numeric result are classified as string functions in this
- case, both because they operate on strings, and because they
- return the result as an ASCII string regardless. The functions
- take the form:-
-
- &FParg
-
- Where 'F' is the function code, 'P' is an optional parameter and
- 'arg' is the argument string to apply the function against. The
- function codes are as follows:-
-
- L - Length of argument (BASIC LEN)
-
- A - ASCII value of first char of argument (BASIC ASC)
-
- C - character with ASCII value argument (BASIC CHR$)
-
- Nn - nth character in argument
-
- Sn - substring starting at nth character of argument (BASIC
- MID$)
-
- T - Title of frame with name argument
-
- Uc - substring of argument up to, but not including character
- 'c'
-
- Fc - substring of argument from character 'c' inclusive
-
- Ic - index of character 'c' in argument, or 0 if not found
- (BASIC INSTR)
-
- K - character typed in response to argument as popup message
- (Basic INKEY$)
-
-
- 4.1.6 File input/output
-
- Most languages provide some form of file I/O. HyperShell
- provides a fairly straightforward means of reading or writing to
-
-
-
- 4-29 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- a file. It is not intended as a fully fledged language, so only
- permits one input and one output file at a time. It is possible
- to have one file open for input and to keep this open whilst
- another file is opened, read and closed, however.
-
- To open a file for reading or writing, the action:-
-
- rfilename / wfilename
-
- is issued (r for read, w for write). To read a record, two
- mechanisms are provided. The formatted read allows a set of
- variables to be loaded from 'fields' in a text record. The 'R'
- action is used for this:-
-
- R:abcdef
-
- Reads the next input record and splits it into variables
- a,b,c,d,e and f on a separator ':'.
-
- The other means of reading an input record is provided via the
- action modifier '!'. This can be used in a number of ways. The
- simplest form is '!' by itself, which returns the next input
- record. The form:-
-
- !Fkey
-
- reads the next record starting with the string 'key'. If it is
- necessary to read the frist record in the file starting with the
- 'key', the format:-
-
- !Lkey
-
- is used instead. Thus this method can be used to provide a
- lookup facility. This lookup is performed sequentially,
- however, so cannot be practically used if the file concerned is
- huge.
-
- File output is done using the 'W' action. This simply takes its
- argument as the record to be written. The record can be formed
- from any of the standard action modifiers, or from variable
- tokens:-
-
- W$a:$b:$c:$d:$e:$f
-
- which would write a record made up of the variables a to f
- separated by ':' characters.
-
-
-
-
-
-
-
- 4-30 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
-
-
-
-
- 4.2 Form Fill
-
-
- HyperShell frames can also be used as data entry forms or
- database browsing forms. This is brought about by one powerful
- type of reference - the input field. An input field is like any
- other reference, until you select it. It then becomes an input
- area into which you can type a string. It is generally the case
- that the input string is used to set a variable, and that the
- variable is displayed in the field until it is selected. The
- width of the field is generally specified in the field
- specification, as it is this which determines the maximum size
- of the field. A typical input field would look like:-
-
- ~I$v~W10~PVv%s~E
-
- This specifies an input field of length 10, in which the
- variable 'v' is displayed. After entering a string, it is
- assigned to the variable.
-
- Where a number of fields are supplied in a frame to form a
- formfill screen, they can be 'chained' to the next input by use
- of the 'I' action. This causes the next input field to be
- selected. e.g.
-
- ~I$v~W10~PVv%s;I~E
-
- does the same as the above field, and then selects the next
- input field. The user sees this as a typical formfill
- interaction, and can press ESCAPE to cancel the sequence of
- inputs.
-
- So, what do we do with the data we have entered. One thing we
- could do would be to write it to a file. An action reference in
- the frame text could be used for opening the file for starters:-
-
- ~AOpen file for writing~Pwdata.txt~E
-
- The last input field could then write the data out after input:-
-
- ~I$f~W10~PVf%s;W$$a:$$b:$$c:$$d:$$e:$$f~E
-
- This would write out a line containing variables 'a' to 'f'
- separated by ':' characters. As an alternative, a separate
- action reference can be used for writing a record, so that
- changes can be made to the fields before writing:-
-
-
-
- 4-31 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Advanced techniques Authoring Guide
-
-
-
- ~AWrite record~PW$$a:$$b:$$c:$$d:$$e:$$f~E
-
- Note that the double dollars are needed to stop the variable
- expansion taking place when the frame is displayed. To close
- the file, another action reference of the form:-
-
- ~AClose file~Pw~E
-
- can be supplied.
-
- How about using the form to browse through a database. To open
- a file for reading, we have an action:-
-
- ~AOpen for reading~Prdata.txt~E
-
- If the database consists of text records with fields separated
- by a special character (like ':' above), we can read a record
- into a number of variables with one action string:-
-
- ~ARead file~PR:abcdef;y~E
-
- This reads the next record and refreshes the screen, allowing
- any variable expansion tokens for the variables input to be
- expanded. These could be in input field specifications, or
- elsewhere in the frame text.
-
- If we want to perform a lookup in a text file, the 'R' action
- cannot be used. In this case we could use an input field to
- input the first variable as a key, and lookup the record.
-
- ~I$a~W20~PVr!L%s;er:abcdef;y~E
-
- This rather complex action uses the input string as a key to
- look up a record starting with the key field, reading the record
- into variable 'r'. It then expands 'r' into a,b,c,d,e and f
- before refreshing the screen to display the values. Note that a
- slightly more complicated action is required in practise, as it
- has to handle the case where the record is not found - the above
- example would set all variables to a null string (which may be
- acceptable in some cases).
-
- The 'immediate reference' flag can be used with form frames to
- select the first input field, or to execute a script to open
- files etc. prior to any processing.
-
-
-
-
-
-
-
-
-
- 4-32 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Glossary Authoring Guide
-
-
-
-
-
-
-
-
-
- Appendix A
-
- Glossary
-
-
-
- Action An action is a command string executed by
- HyperShell. This command may be mapped to a key,
- executed when a reference is selected, selected
- from a menu or performed as a step in a script.
-
- Cursor A single character line or block used for
- indicating a 'current position' upon the
- computer screen. HyperShell has its own 'mouse
- cursor', which is a block, and the normal text
- cursor, which is usually a blinking underscore
- character. The text cursor is only used when
- inputting text. The mouse cursor is used for
- selecting references and menu options.
-
- Frame The unit of display of HyperShell. A Frame is
- the information displayed to describe a topic,
- and is usually presented in a full screen
- display.
-
- Global/local A HyperShell item, such as a Note, Menu or
- Script is either global or local. If it is
- Global, it is available from all frames and
- other items. If it is Local, it is only
- available when the frame to which it is local is
- currently displayed.
-
- Hyperfile A hyperfile is the text file used to drive
- HyperShell. It contains the text for frames and
- other items, specifications of menus, scripts
- etc. and embedded reference flags to indicate
- cross reference links.
-
- Item An item is one of the HyperShell control
- structures, such as frames, notes, menus,
- scripts, headers, footers etc.
-
- Menu A menu is a popup display offering a choice from
- a number of selections.
-
-
-
- 4-33 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Glossary Authoring Guide
-
-
-
- Mouse A mouse is a device used for controlling the
- location of a cursor on the screen. A mouse
- usually has one or more buttons, which act like
- keys on the keyboard. In HyperShell, a cursor
- is provided to imitate the action of a mouse
- cursor, even if a mouse is not available. A
- direct mouse driver is also supplied for those
- who have a mouse.
-
- Note A note is a small popup display of textual
- information. This display can occupy a section
- of screen nearly as big as a full screen
- display.
-
- Option An option is a control setting for HyperShell,
- used to control the way in which HyperShell runs
- and the colour schemes used to display the
- items.
-
- Popup A type of display where a small area of screen
- is overwritten temporarily by a highlighted
- block of text used as a menu or some form of
- display. When the display is finished with, the
- area of screen is rewritten with its original
- contents.
-
- Reference A highlighted word or sequence of words in a
- frame or note display, which can be selected to
- perform some kind of action, such as moving to
- another frame display.
-
- Select You 'select' a reference by moving the mouse
- cursor to it and either pressing the RETURN (or
- ENTER, or that big key on the right of the
- alphabetic group you use for finishing lines),
- or the left hand mouse button.
-
- Script A script is a sequence of actions grouped
- together. It is similar to a small program, and
- can contain programming contructs.
-
- Variable A variable is a named storage area used to hold
- strings of characters and numbers.
-
- - END OF DOCUMENT -
-
-
-
-
-
-
-
-
- 4-34 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Glossary Authoring Guide
-
-
-
-
-
-
-
- Table of Contents
-
-
- Chapter 1 Introduction 2
-
- 1.1 Introduction 2
- 1.2 Authoring 2
-
- Chapter 2 Tutorial 4
-
- 2.1 File contents 4
- 2.2 Tutorial 4
-
- 2.2.1 Simple hypertext 4
- 2.2.2 Adding features 7
- 2.2.3 Adding further features 10
-
- 2.2.3.1 Help 10
- 2.2.3.2 Narrative flow 12
- 2.2.3.3 Supporting files 13
-
- 2.2.4 Menu systems 14
-
- Chapter 3 Guidelines 16
-
- 3.1 Naming 16
-
- 3.1.1 Frame names 16
- 3.1.2 Frame Titles 17
- 3.1.3 Other items 17
-
- 3.2 Style 17
- 3.3 Developing a hyperfile 18
-
- 3.3.1 Using existing material 18
-
- 3.4 Types of application 18
- 3.5 Master hyperfile 20
- 3.6 Alternative structure 20
-
- Chapter 4 Advanced techniques 22
-
- 4.1 Programming 22
-
- 4.1.1 Actions 22
- 4.1.2 Variables 23
-
-
-
- 4-35 Version 2.5
-
-
-
-
-
-
-
-
- HyperShell Glossary Authoring Guide
-
-
-
- 4.1.3 Scripts 26
- 4.1.4 Simple interaction 28
- 4.1.5 Functions 29
- 4.1.6 File input/output 29
-
- 4.2 Form Fill 31
-
- Appendix A Glossary 33
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4-36 Version 2.5
-
-
-
-
-
-